//
//  HypnosisView.m
//  Hypnosister
//
//  Created by Xia Yong on 12-12-27.
//  Copyright (c) 2012年 Xia Yong. All rights reserved.
//

#import "HypnosisView.h"

@implementation HypnosisView

// 重写UIView的此方法，用来绘制HypnosisView对象
- (void) drawRect:(CGRect)rect {
    // 获取绘图区域
    CGRect bounds = self.bounds;
    
    // 计算中心点
    CGPoint center;
    center.x = bounds.origin.x + bounds.size.width / 2;
    center.y = bounds.origin.y + bounds.size.height / 2;
    
    // 计算中心点至边角点的距离
    // double hypot(double, double) 此函数用来计算直角三角形的斜边长
    float maxRadius = hypot(bounds.size.width, bounds.size.height) / 2;
    
    // 获取绘图所需的上下文
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    
    // 用10点的像素绘制所有的线条
    CGContextSetLineWidth(contextRef, 10);
    
    // 线条颜色设置为淡灰
    [[UIColor lightGrayColor] setStroke];
    
    // 绘制同心圆
    for (float currentRadius = maxRadius; currentRadius > 0; currentRadius -= 20) {
        CGContextAddArc(contextRef, center.x, center.y, currentRadius, 0, M_PI * 2, YES);
        CGContextStrokePath(contextRef);
    }
    
    // 创建字符串
    NSString *text = @"You are getting sleepy.";
    // 字体
    UIFont *font = [UIFont boldSystemFontOfSize:28];
    
    // 计算文字的绘图位置、大小
    CGRect textRect;
    textRect.size = [text sizeWithFont:font];
    textRect.origin.x = center.x - textRect.size.width / 2;
    textRect.origin.y = center.y - textRect.size.height / 2;
    
    // 将当前上下文的填充色设置为黑色
    [[UIColor blackColor] setFill];
    
    // 设置阴影为向右偏移4点，向下偏移3点，暗灰色，2点模糊半径
    CGSize offset = CGSizeMake(4, 3);
    CGColorRef color = [[UIColor darkGrayColor] CGColor];
    CGContextSetShadowWithColor(contextRef, offset, 2, color);
    
    // 绘制字符串
    [text drawInRect:textRect withFont:font];
} 
@end
